LFSRs are well known in the art. Typically, these devices are utilized in operations where the generation of a pseudonoise/pseudorandom (PN) signal is required. A PN signal is a binary signal, which appears to be random. In reality, a PN signal is not random at all; it is a deterministic, periodic signal whose periodicity is dependent upon the number of stages within the LFSR, the feedback taps, and the LFSR's initial conditions. Typical operations employing LFSR's as PN signal generators are: spread spectrum systems, noise generators, and cryptographic systems hereinafter referred to as cryptosystems.
FIG. 1 depicts a simplistic representation of an LFSR 100. Mathematically, the LFSR defines an Nth degree polynomial (where N is the length of the LFSR) with one coefficient for each "tap" (output bit) used to form the feed back signal. Accordingly, the LFSR 100 is definable as a forth degree polynomial, comprising the four stages 11-14, with feedback signal .sup.T 1, which performs an exclusive-or operation on the output of stage 13 and 14 and feeds that operation back to the input of stage 11.
It will be appreciated by those skilled in the art that the LFSR 100 is a simplistic model of a PN signal generator, for use as, for example, the encryption key, which dictates a specific encryption transformation for a cryptosystem. This particular example was selected primarily to show that an LFSR Of the Nth degree is ultimately periodic in 2.sup.n -1 bits (see Table. 1).
In the preferred embodiment, LFSR 100 comprises a 64 stage shift register, providing a 64th degree polynomial. Approximately 32 taps are used to create the desired PN signal. Accordingly, the 64 bit maximal length LFSR will produce a digital sequence having approximately 1.84.times.10.sup.19 bits. At 12 KHz, it would take nearly 50 million years for this sequence to repeat. As PN signal generators increase in sophistication, typical values reach 80 to 100 stages with anywhere from 40 to 50 taps, in which case the sequences can be expected to repeat every 4.times.10.sup.16 years.
The primary goal of any cryptosystem is to prevent the unauthorized introduction (spoofing) or extraction (eavesdropping) of information from the communication channel. Since the previously discussed encryption keys repeats so infrequently, one might suppose that a cryptosystem utilizing these keys would be unconditionally secure. Unfortunately, any cryptosystem that uses an LFSR to generate the encryption key is extremely vulnerable to attack.
The Cryptosystems weakness is caused by the LFSR's linearity. Since the PN signal is generated by an algorithm, knowledge of the algorithm reveals the entire sequence. While it takes 2.sup.n -1 bits for a PN sequence to repeat, a cryptanalyst needs only 2 n bits of plaintext and its corresponding ciphertext to determine the feedback taps, the initial state of the register, and ultimately the entire PN signal. This vulnerability represents a major drawback to the continued use of LFSRs in modern cryptosystems.
Accordingly, it would be extremely advantageous to provide a cryptographic method and apparatus wherein the PN signal of an LFSR is made non-linear, thereby rendering the cryptosystem virtually indecipherable.